using System;
using System.Collections.Generic;
using System.Text;
using DesignPrinciples.OCPSolution;
using DesignPrinciples.SRPSolution;
using DesignPrinciples.SRPViolation;

namespace DesignPrinciples
{
    class Program
    {
        static void Main(string[] args)
        {
            OpenClose();
        }

        private static void OpenClose()
        {
            IDisplayTemperature temperatureDisplay = new DisplayTemperatureInFahrenheit(45);
            IDisplayWindSpeed windSpeedDisplay = new DisplayWindSpeed(88);

            WeatherDisplayOCP weatherDisplay = new WeatherDisplayOCP(temperatureDisplay, windSpeedDisplay);
            weatherDisplay.DisplayWeather();
            Console.ReadLine();
        }

        static void SingleResponsibility()
        {
            DisplayTemperature displayTemperature = new DisplayTemperature(54);
            DisplayWindSpeed displayWindSpeed = new DisplayWindSpeed(34);

            WeatherDisplaySRP goodDisplay = new WeatherDisplaySRP(displayTemperature, displayWindSpeed);
            goodDisplay.DisplayWeather();

            Console.ReadLine();
        }
    }
}
